Crowdsolving Program Verification
نویسندگان
چکیده
In this effort, we consider the verification of properties in C (subset) programs. That is, we prove the validity of a pre/postcondition pair for a program, or demonstrate invalidity via an error trace. This is undecidable in general, and modern static analysis techniques struggle to reason about non-linear programs and programs with loops. To that end, we use abstraction for defining results of looping and non-linear computations. Furthermore, existing techniques do not take advantage of programmer’s insight, since the programmer receives little feedback from failed proof attempts. To that end, we ask user for facts that are relevant to the proof. Our technique is sound, modulo the correctness of verification tools we rely on. As a first step, existing static analysis and invariant generation techniques are deployed on the program. We try to prove the postcondition using these facts. If that fails, we compute an abstraction of the original program, and query user for facts about the abstract program. We check the validity of each user fact given the set of known proven facts. We again try to prove the postcondition using this new fact. This process iterates until we either discharge the proof, or demonstrate a bug. In summary, we hope to involve a crowd of semi-expert users in solving a verification problem. With game mechanics and proper incentive mechanisms in place, crowdsolving can help scale program verification.
منابع مشابه
Developing a Verification and Training Phantom for Gynecological Brachytherapy System
Introduction Dosimetric accuracy is a major issue in the quality assurance (QA) program for treatment planning systems (TPS). An important contribution to this process has been a proper dosimetry method to guarantee the accuracy of delivered dose to the tumor. In brachytherapy (BT) of gynecological (Gyn) cancer it is usual to insert a combination of tandem and ovoid applicators with a complicat...
متن کاملIntroduction of a Reliable Software for the Calculation of the Gamma Index
Introduction: The gamma index is a known parameter for radiotherapy dose verification. Many free and commercial programs have been written for the calculation of this index. However, the verification of the results has been overlooked in many of the programs. The present study tested the validity of three gamma index calculator programs. Material and ...
متن کاملJust test what you cannot verify ! 1
Software verification is an established method to ensure software safety. Nevertheless, verification still often fails, either because it consumes too much resources, e.g., time or memory, or the technique is not mature enough to verify the property. Often then discarding the partial verification, the validation process proceeds with techniques like testing. To enable standard testing to profit...
متن کاملMind the Gap: Formal Verification and the Common Criteria (Discussion Paper)
It is a common belief that the rise of standardized software certification schemes like the Common Criteria (CC) would give a boost to formal verification, and that software certification may be a killer application for program verification. However, while formal models are indeed used throughout high-assurance certification, verification of the actual implementation is not required by the CC a...
متن کاملSynergies among Testing, Verification, and Repair for Concurrent Programs (Dagstuhl Seminar 16201)
This report documents the program and the outcomes of Dagstuhl Seminar 16201 “Synergies among Testing, Verification, and Repair for Concurrent Programs”. This seminar builds upon, and is inspired by, several past seminars on program testing, verification, repair and combinations thereof. These include Dagstuhl Seminar 13021 “Symbolic Methods in Testing”; Dagstuhl Seminar 13061 “Fault Prediction...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2012